
CXX=g++
LDFLAGS=`pkg-config --libs gtkmm-2.4` -L./libvtk -lvtk
CXXFLAGS=`pkg-config --cflags gtkmm-2.4` -I. -I./..

DEFS=vtk.defs\
  vtk_methods.defs\
  vtk_enums.defs\
  vtk_signals.defs

CC_FILES=videoarea.cc

all: libvtk/libvtk.a tools/generate_defs_vtk $(DEFS) $(CC_FILES)

videoarea.cc: tools/generate_defs_vtk $(DEFS)

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mGenerate $@...\e[0;0m"
	@echo "##################################################"
	@echo
	/usr/lib/glibmm-2.4/proc/gmmproc -I ./tools/m4 videoarea ./src ./../vtkmm &> /dev/null

	sed -i -e "s/libvtk/vtk/g" videoarea.cc

tools/generate_defs_vtk: libvtk/libvtk.a

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mBuild the generate_defs_vtk tool...\e[0;0m"
	@echo "##################################################"
	@echo

	$(MAKE) -C tools

vtk_methods.defs:

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mNow build $@ files   \e[0;0m"
	@echo "##################################################"
	@echo

	python /usr/lib/python2.4/site-packages/gtk-2.0/codegen/h2def.py ./libvtk/*.h > vtk_methods.defs


vtk_enums.defs:

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mNow build $@ files   \e[0;0m"
	@echo "##################################################"
	@echo

	./tools/enum.pl ./libvtk/*.h > vtk_enums.defs


vtk_signals.defs:

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mNow build $@ files   \e[0;0m"
	@echo "##################################################"
	@echo

	./tools/generate_defs_vtk > vtk_signals.defs


vtk.defs:

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mNow build $@ files   \e[0;0m"
	@echo "##################################################"
	@echo

	echo "(include vtk_methods.defs)" > vtk.defs
	echo "(include vtk_signals.defs)" >> vtk.defs
	echo "(include vtk_enums.defs)" >> vtk.defs

libvtk/libvtk.a: libvtk/Makefile.lib

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mNow build the libvtk library staticaly...\e[0;0m"
	@echo "##################################################"
	@echo

	$(MAKE) -C libvtk -f Makefile.lib

libvtk/Makefile.lib:

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mCheckout last libvtk sources from SVN..\e[0;0m"
	@echo "##################################################"
	@echo

	@svn co https://gdbabar.googlecode.com/svn/branches/gtkmm/vtk libvtk

clean:

	$(MAKE) -C libvtk -f Makefile.lib clean
	$(MAKE) -C tools clean
	@$(RM) -f $(DEFS) private/* $(CC_FILES) *.h sample

sample: sample.cc videoarea.cc

	@echo
	@echo "##################################################"
	@echo -e " \e[0;32mMake a sample binary using our widget..\e[0;0m"
	@echo "##################################################"
	@echo
	
	$(CXX) sample.cc videoarea.cc $(CXXFLAGS) -o sample $(LDFLAGS)

mrproper:

	$(MAKE) clean
	@$(RM) -rf libvtk 

